#ifndef _NODE
#define _NODE

#include <iostream>
using namespace std;

template<class T>
class List_self;


template<class T>
class Node
{
public:
	Node(const T& item, Node<T>* ptr = NULL)
		:data(item),next(ptr)
	{}
	Node(Node<T>* ptr = NULL)
		:next(ptr)
	{}

	T Getdata() const { return data; }
	Node<T>* Getnext() const{ return next; }
	T& Setdata() { return data; }
     
	friend List_self<T>;

private:
	T data;
	Node<T>* next;

};







#endif // !_NODE

